[INFO] cloning repository https://github.com/GBujak/bfplan
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/GBujak/bfplan" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGBujak%2Fbfplan", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGBujak%2Fbfplan'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 15789f8cfa36d3c312fec5c0c3635bee1a8d738e
[INFO] checking GBujak/bfplan against master#4eb62535fc12dd1a63fd43a4173e224e79313c4d for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGBujak%2Fbfplan" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/GBujak/bfplan
[INFO] finished tweaking git repo https://github.com/GBujak/bfplan
[INFO] tweaked toml for git repo https://github.com/GBujak/bfplan written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/GBujak/bfplan on toolchain 4eb62535fc12dd1a63fd43a4173e224e79313c4d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/GBujak/bfplan already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_derive v1.0.124
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93
[INFO] running `Command { std: "docker" "start" "28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.24
[INFO] [stderr]    Compiling unicode-xid v0.2.1
[INFO] [stderr]    Compiling libc v0.2.94
[INFO] [stderr]    Compiling syn v1.0.64
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]    Compiling serde_derive v1.0.124
[INFO] [stderr]    Compiling serde v1.0.124
[INFO] [stderr]    Compiling serde_json v1.0.64
[INFO] [stderr]     Checking itoa v0.4.7
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]     Checking itertools v0.10.0
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking rand_core v0.6.2
[INFO] [stderr]     Checking rand_chacha v0.3.0
[INFO] [stderr]     Checking rand v0.8.3
[INFO] [stderr]     Checking bfplan v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Subject`
[INFO] [stdout]  --> src/annealing/adapter.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 |     data_types::{Classroom, SimpleDate, StudentGroup, Subject, Teacher},
[INFO] [stdout]   |                                                       ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CanTeach`
[INFO] [stdout]   --> src/annealing/adapter.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     illegal_buffer::{CanTeach, IllegalBuffer},
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `InnerCollision`
[INFO] [stdout]  --> src/annealing/annealing_buffer.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     inner_state::{InnerCollision, InnerState},
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/annealing/annealing_buffer.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassroomTimeKey` and `TeacherTimeKey`
[INFO] [stdout]   --> src/annealing/annealing_buffer.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use super::inner_state::{ClassroomTimeKey, Lesson, TeacherTimeKey};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::annealing_functions::temperature`
[INFO] [stdout]   --> src/annealing/annealing_state.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         use super::annealing_functions::temperature;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `illegal_buffer::IllegalBuffer`
[INFO] [stdout]  --> src/annealing/mutation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     illegal_buffer::IllegalBuffer,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/data_types/lesson.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/data_types/simple_date.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Subject`
[INFO] [stdout]  --> src/annealing/adapter.rs:4:55
[INFO] [stdout]   |
[INFO] [stdout] 4 |     data_types::{Classroom, SimpleDate, StudentGroup, Subject, Teacher},
[INFO] [stdout]   |                                                       ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CanTeach`
[INFO] [stdout]   --> src/annealing/adapter.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |     illegal_buffer::{CanTeach, IllegalBuffer},
[INFO] [stdout]    |                      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `InnerCollision`
[INFO] [stdout]  --> src/annealing/annealing_buffer.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 |     inner_state::{InnerCollision, InnerState},
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/annealing/annealing_buffer.rs:9:24
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ClassroomTimeKey` and `TeacherTimeKey`
[INFO] [stdout]   --> src/annealing/annealing_buffer.rs:11:30
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use super::inner_state::{ClassroomTimeKey, Lesson, TeacherTimeKey};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::annealing_functions::temperature`
[INFO] [stdout]   --> src/annealing/annealing_state.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         use super::annealing_functions::temperature;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `illegal_buffer::IllegalBuffer`
[INFO] [stdout]  --> src/annealing/mutation.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     illegal_buffer::IllegalBuffer,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/data_types/lesson.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/data_types/simple_date.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/annealing/adapter.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut can_teach = HashSet::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/annealing/adapter.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut can_hold = HashSet::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/annealing/adapter.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut illegal_states = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lesson_id`
[INFO] [stdout]    --> src/annealing/adapter.rs:119:14
[INFO] [stdout]     |
[INFO] [stdout] 119 |         for (lesson_id, lesson_info) in self.lesson_info.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lesson_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_teach`
[INFO] [stdout]    --> src/annealing/adapter.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |             let can_teach = &self.subject_info[lesson_info.subject_name].can_teach;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_teach`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lesson`
[INFO] [stdout]   --> src/annealing/illegal_buffer.rs:55:30
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn is_illegal(&self, lesson: Lesson) -> bool {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_lesson`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `illegal_buffer`
[INFO] [stdout]    --> src/annealing/inner_state.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         illegal_buffer: Option<&IllegalBuffer>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_illegal_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `illegal_buffer`
[INFO] [stdout]    --> src/annealing/inner_state.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         illegal_buffer: Option<&IllegalBuffer>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_illegal_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/annealing/adapter.rs:115:13
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let mut can_teach = HashSet::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/annealing/adapter.rs:116:13
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let mut can_hold = HashSet::new();
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/annealing/adapter.rs:117:13
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let mut illegal_states = Vec::new();
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lesson_id`
[INFO] [stdout]    --> src/annealing/adapter.rs:119:14
[INFO] [stdout]     |
[INFO] [stdout] 119 |         for (lesson_id, lesson_info) in self.lesson_info.iter().enumerate() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lesson_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `can_teach`
[INFO] [stdout]    --> src/annealing/adapter.rs:120:17
[INFO] [stdout]     |
[INFO] [stdout] 120 |             let can_teach = &self.subject_info[lesson_info.subject_name].can_teach;
[INFO] [stdout]     |                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_can_teach`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lesson`
[INFO] [stdout]   --> src/annealing/illegal_buffer.rs:55:30
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn is_illegal(&self, lesson: Lesson) -> bool {
[INFO] [stdout]    |                              ^^^^^^ help: if this is intentional, prefix it with an underscore: `_lesson`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `illegal_buffer`
[INFO] [stdout]    --> src/annealing/inner_state.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         illegal_buffer: Option<&IllegalBuffer>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_illegal_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `can_teach` and `can_hold` are never read
[INFO] [stdout]   --> src/annealing/adapter.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct SubjectInfo<'a> {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 23 |     pub can_teach: Vec<&'a Teacher>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 24 |     pub can_hold: Vec<&'a Classroom>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `illegal_buffer`
[INFO] [stdout]    --> src/annealing/inner_state.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |         illegal_buffer: Option<&IllegalBuffer>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_illegal_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `create_illegal_buffer` is never used
[INFO] [stdout]    --> src/annealing/adapter.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl<'a> AnnealingAdapter<'a> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn create_illegal_buffer(&self) -> IllegalBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `teacher_count`, `can_teach`, and `can_hold` are never read
[INFO] [stdout]   --> src/annealing/annealing_buffer.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct AnnealingBuffer {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 27 |     pub teacher_count: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub can_teach: HashSet<CanTeach>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 32 |     pub can_hold: HashSet<CanHold>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temperature` is never used
[INFO] [stdout]  --> src/annealing/annealing_functions.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn temperature(time: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_iterations` is never read
[INFO] [stdout]  --> src/annealing/annealing_state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct AnnealingState {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 3 |     iteration: usize,
[INFO] [stdout] 4 |     max_iterations: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AnnealingState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `group_lessons_in_day_weight` is never read
[INFO] [stdout]   --> src/annealing/energy.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct EnergyWeights {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub group_lessons_in_day_weight: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `can_teach`, `can_hold`, and `illegal_states` are never read
[INFO] [stdout]   --> src/annealing/illegal_buffer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct IllegalBuffer {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 20 |     can_teach: HashSet<CanTeach>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 21 |     can_hold: HashSet<CanHold>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |
[INFO] [stdout] 23 |     illegal_states: Vec<IllegalState>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_teach`, `can_hold`, `insert_can_teach`, `insert_can_hold`, and `is_illegal` are never used
[INFO] [stdout]   --> src/annealing/illegal_buffer.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl IllegalBuffer {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn can_teach(&self, can_teach: CanTeach) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn can_hold(&self, can_hold: CanHold) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn insert_can_teach(&mut self, can_teach: CanTeach) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn insert_can_hold(&mut self, can_hold: CanHold) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn is_illegal(&self, lesson: Lesson) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `teacher_time`, `classroom_time`, and `group_time` are never read
[INFO] [stdout]   --> src/annealing/inner_state.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct InnerStateRef<'a> {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub teacher_time: &'a HashMap<TeacherTimeKey, usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 83 |     pub classroom_time: &'a HashMap<ClassroomTimeKey, usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     pub group_time: &'a HashMap<GroupTimeKey, usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InnerStateRef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_no_collisions` is never used
[INFO] [stdout]    --> src/annealing/inner_state.rs:340:12
[INFO] [stdout]     |
[INFO] [stdout] 339 | impl InnerCollision {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 340 |     pub fn is_no_collisions(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/annealing/mutation.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Mutation {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn new(target_lesson: usize, mutation_type: MutationType) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LessonPossible` is never constructed
[INFO] [stdout]  --> src/data_types/lesson.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct LessonPossible<'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `cartesian_product_iter` are never used
[INFO] [stdout]   --> src/data_types/lesson.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<'a> LessonPossible<'a> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn cartesian_product_iter(&self) -> impl Iterator<Item = Lesson> + Clone {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lesson` is never constructed
[INFO] [stdout]   --> src/data_types/lesson.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Lesson<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LessonRawPossibility` is never used
[INFO] [stdout]   --> src/data_types/lesson.rs:62:6
[INFO] [stdout]    |
[INFO] [stdout] 62 | type LessonRawPossibility<'a> = (
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/simple_date.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl SimpleDate {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(day: u8, hour: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DateList` is never constructed
[INFO] [stdout]   --> src/data_types/simple_date.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct DateList {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/simple_date.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl DateList {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 37 |     pub fn new(/*illegal_dates: HashSet<SimpleDate>, */ days: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_next` and `is_done` are never used
[INFO] [stdout]   --> src/data_types/simple_date.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl DateList {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 48 |     fn set_next(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn is_done(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/subject.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Subject {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(name: String, subject_type: SubjectType, count: i8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/teacher.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Teacher {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(name: String, can_teach: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_logic_error` and `is_violated_by` are never used
[INFO] [stdout]   --> src/illegal_state.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl IllegalState {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 27 |     pub fn is_logic_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_violated_by(&self, lesson: Lesson) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `illegal_states` is never read
[INFO] [stdout]   --> src/input.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct PlanInput {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub illegal_states: Vec<IllegalState>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `find_subject`, and `possible_lessons` are never used
[INFO] [stdout]   --> src/input.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl PlanInput {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn find_subject(&self, name: &str) -> Option<&Subject> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn possible_lessons(&self) -> Option<Vec<LessonPossible>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> src/output.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl PlanOutput {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/annealing/inner_state.rs:95:22
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn state_ref(&self) -> InnerStateRef {
[INFO] [stdout]    |                      ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn state_ref(&self) -> InnerStateRef<'_> {
[INFO] [stdout]    |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/data_types/lesson.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn cartesian_product_iter(&self) -> impl Iterator<Item = Lesson> + Clone {
[INFO] [stdout]    |                                   ^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn cartesian_product_iter(&self) -> impl Iterator<Item = Lesson<'_>> + Clone {
[INFO] [stdout]    |                                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/input.rs:38:29
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn possible_lessons(&self) -> Option<Vec<LessonPossible>> {
[INFO] [stdout]    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn possible_lessons(&self) -> Option<Vec<LessonPossible<'_>>> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `can_teach` and `can_hold` are never read
[INFO] [stdout]   --> src/annealing/adapter.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct SubjectInfo<'a> {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] 23 |     pub can_teach: Vec<&'a Teacher>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 24 |     pub can_hold: Vec<&'a Classroom>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `create_illegal_buffer` is never used
[INFO] [stdout]    --> src/annealing/adapter.rs:114:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl<'a> AnnealingAdapter<'a> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn create_illegal_buffer(&self) -> IllegalBuffer {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `teacher_count`, `can_teach`, and `can_hold` are never read
[INFO] [stdout]   --> src/annealing/annealing_buffer.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct AnnealingBuffer {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 27 |     pub teacher_count: u8,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub can_teach: HashSet<CanTeach>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 32 |     pub can_hold: HashSet<CanHold>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `temperature` is never used
[INFO] [stdout]  --> src/annealing/annealing_functions.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn temperature(time: f32) -> f32 {
[INFO] [stdout]   |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_iterations` is never read
[INFO] [stdout]  --> src/annealing/annealing_state.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct AnnealingState {
[INFO] [stdout]   |            -------------- field in this struct
[INFO] [stdout] 3 |     iteration: usize,
[INFO] [stdout] 4 |     max_iterations: usize,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `AnnealingState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `group_lessons_in_day_weight` is never read
[INFO] [stdout]   --> src/annealing/energy.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct EnergyWeights {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub group_lessons_in_day_weight: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `can_teach`, `can_hold`, and `illegal_states` are never read
[INFO] [stdout]   --> src/annealing/illegal_buffer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct IllegalBuffer {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 20 |     can_teach: HashSet<CanTeach>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 21 |     can_hold: HashSet<CanHold>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 22 |
[INFO] [stdout] 23 |     illegal_states: Vec<IllegalState>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_teach`, `can_hold`, `insert_can_teach`, `insert_can_hold`, and `is_illegal` are never used
[INFO] [stdout]   --> src/annealing/illegal_buffer.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl IllegalBuffer {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn can_teach(&self, can_teach: CanTeach) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn can_hold(&self, can_hold: CanHold) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn insert_can_teach(&mut self, can_teach: CanTeach) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn insert_can_hold(&mut self, can_hold: CanHold) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn is_illegal(&self, lesson: Lesson) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `teacher_time`, `classroom_time`, and `group_time` are never read
[INFO] [stdout]   --> src/annealing/inner_state.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct InnerStateRef<'a> {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub teacher_time: &'a HashMap<TeacherTimeKey, usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 83 |     pub classroom_time: &'a HashMap<ClassroomTimeKey, usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 84 |     pub group_time: &'a HashMap<GroupTimeKey, usize>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InnerStateRef` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_no_collisions` is never used
[INFO] [stdout]    --> src/annealing/inner_state.rs:340:12
[INFO] [stdout]     |
[INFO] [stdout] 339 | impl InnerCollision {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 340 |     pub fn is_no_collisions(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LessonPossible` is never constructed
[INFO] [stdout]  --> src/data_types/lesson.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct LessonPossible<'a> {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `cartesian_product_iter` are never used
[INFO] [stdout]   --> src/data_types/lesson.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<'a> LessonPossible<'a> {
[INFO] [stdout]    | --------------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn cartesian_product_iter(&self) -> impl Iterator<Item = Lesson> + Clone {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lesson` is never constructed
[INFO] [stdout]   --> src/data_types/lesson.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct Lesson<'a> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LessonRawPossibility` is never used
[INFO] [stdout]   --> src/data_types/lesson.rs:62:6
[INFO] [stdout]    |
[INFO] [stdout] 62 | type LessonRawPossibility<'a> = (
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/simple_date.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl SimpleDate {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 12 |     pub fn new(day: u8, hour: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DateList` is never constructed
[INFO] [stdout]   --> src/data_types/simple_date.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct DateList {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/simple_date.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl DateList {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 37 |     pub fn new(/*illegal_dates: HashSet<SimpleDate>, */ days: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_next` and `is_done` are never used
[INFO] [stdout]   --> src/data_types/simple_date.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl DateList {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] 48 |     fn set_next(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     fn is_done(&self) -> bool {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/subject.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl Subject {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(name: String, subject_type: SubjectType, count: i8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/data_types/teacher.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Teacher {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 10 |     pub fn new(name: String, can_teach: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_logic_error` and `is_violated_by` are never used
[INFO] [stdout]   --> src/illegal_state.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl IllegalState {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] 27 |     pub fn is_logic_error(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn is_violated_by(&self, lesson: Lesson) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `illegal_states` is never read
[INFO] [stdout]   --> src/input.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct PlanInput {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 10 |     pub illegal_states: Vec<IllegalState>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `find_subject`, and `possible_lessons` are never used
[INFO] [stdout]   --> src/input.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl PlanInput {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 16 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn find_subject(&self, name: &str) -> Option<&Subject> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn possible_lessons(&self) -> Option<Vec<LessonPossible>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `len` is never used
[INFO] [stdout]   --> src/output.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl PlanOutput {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/annealing/inner_state.rs:95:22
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn state_ref(&self) -> InnerStateRef {
[INFO] [stdout]    |                      ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn state_ref(&self) -> InnerStateRef<'_> {
[INFO] [stdout]    |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/data_types/lesson.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn cartesian_product_iter(&self) -> impl Iterator<Item = Lesson> + Clone {
[INFO] [stdout]    |                                   ^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub fn cartesian_product_iter(&self) -> impl Iterator<Item = Lesson<'_>> + Clone {
[INFO] [stdout]    |                                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/input.rs:38:29
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn possible_lessons(&self) -> Option<Vec<LessonPossible>> {
[INFO] [stdout]    |                             ^^^^^                ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                             |
[INFO] [stdout]    |                             the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 38 |     pub fn possible_lessons(&self) -> Option<Vec<LessonPossible<'_>>> {
[INFO] [stdout]    |                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.31s
[INFO] running `Command { std: "docker" "inspect" "28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93", kill_on_drop: false }`
[INFO] [stdout] 28a62f60bfac8e1db4a01e0bd1054a5889bd2c521fb378e463393766ee34af93
